Peer-to-peer identity-based activity sharing

ABSTRACT

A system and method to allow a user of instant messaging chat modules in a network to share identity-based activity of the certain user and/or related information with contacts. For example, the user&#39;s instant messenger contacts may view recent active content, ongoing and recent online activity, etc., of another user. A sender peer includes an application module to activate a media content file from a content repository, or perform online activities through an activity server. The sender peer also includes a chat module, which detects identity-based activity and sends related indications to a recipient peer. The recipient peer includes a chat module to display identity-based activity based on the indications and an application module to activate related content files. A content enhancement server provides supplemental content information for display at the recipient peer and content previews. The content enhancement server also enables a transaction related to the content file such as a purchase of an MP3 copy of the content.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation-in-part of U.S. patent applicationSer. No. 10/612,632, filed on Jul. 1, 2003, entitled “Peer-to-PeerActive Content Sharing,” from which priority is claimed under 35 U.S.C.§ 120 and which application is incorporated by reference herein in itsentirety.

BACKGROUND OF THE INVENTION

1. Filed of the Invention

This invention pertains generally to chat networks, and moreparticularly, to sharing identity-based activity and related informationwith another peer.

2. Description of Related Art

Instant messaging has recently emerged as a powerful communicationsmodel for both business and personal communications. Instant messagingsoftware applications such as Apple Computer's iChat™, America Online'sInstant Messenger™, Microsoft Corp.'s MSN Messenger™, and others allowusers to communicate instantly with other users over a peer network.These applications permit users to track other users that are currentlylogged in and to send them real time text messages. Users typicallymaintain a contact or buddy list of preferred contacts that are friends,family, co-workers, or others having common interests, etc.

However, these instant messaging applications are limited to sharingsimple and direct text communications between contacts whereas computeruses are expanding beyond the conventional text-based functions.Convergence between computers and digital entertainment devices has ledto computers that serve as an entertainment center to play music, watchmovies, and enjoy other multimedia content. Additionally, computer usersare spending more time with online activities such as playing games andconducting transactions. This content and activity, although potentiallyof interest to a contact, is not easily shared with those contacts.

Existing instant messaging applications limit real time content andinformation shared between a user and a contact to, for example, textmessages, simple graphic files, and static file transfers.Significantly, current instant messaging applications do not allow usersof a peer to directly and easily share content active on a user'scomputer or other activities of a user on the Internet. Active desktopcontent and web-based activities of a contact are not communicated inconjunction with current applications. Active content, as used herein,includes files that a user is currently accessing, such as music filesthe user is currently listening to, movies the user is currentlywatching, or the like. Identity-based activity, as used herein, includesbroader activities of a particular user such as web-based auctions andtransactions. Thus, if a user is listening to a music file on hiscomputer, those contacts he may be currently instantly messaging cannothear the same file at the same time.

At best, in order to share such files, the sender must transfer the filevia a file transfer function of the instant messaging application or asan attachment to an email sent by an email application, or a user cansend a URL to a file if its available on the Internet. This process isnot real time sharing of active content, but is essentially copying thestatic file (or a reference to it) from one computer to another.Further, neither approach provides the recipient with real time updatessuch as a change in active content, a list of recently activatedcontent, nor synchronization.

Furthermore, there is no network architecture to automatically enhancethe recipient's use active content and/or active content information.Typically, a recipient of a static content file has to undertakeadditional manual steps to obtain such additional information. Again, ifa user is listening to a music file, the user's instant messagingcontacts, even those currently in a chat session, would not have directaccess to information or meta-data such as the song's name, artist,album art, liner notes, or the like. More generally, there is no way fora user of an instant messaging application to retrieve supplementalinformation about the active content in use on another user's computerfrom a database. Similarly, such instant messaging contacts of the usercannot today easily or directly purchase or preview a copy of thecontent within the instant messenger.

Furthermore, there is no way to track a user's activities within theinstant messaging applications. For example, contacts tell what musicfiles he has recently listened to, such as the last file music files.Nor can users share information regarding web activities such as recentcontent purchases, current online auctions, previews or downloads.

Another problem with existing messenger applications is that they aretypically stand-alone applications that provide only messagingfunctionality. However, users often multitask between severalapplications on a single desktop, and typically have an instantmessaging application running concurrently with other applications, suchas word processors, spreadsheets, graphic applications, mediaapplications, and the like. Thus, user must toggle between the instantmessaging application to communicate with their contacts and otheractive applications to perform tasks such as playing back multimedia orsurfing web sites, and performing word processing.

Accordingly, there is a need for more robust instant messagingapplications that enable active content and identity-based activitysharing. The solution should provide supplemental information aboutcontent and activities, and also related recipient transactions.

SUMMARY OF THE INVENTION

The present invention meets these needs by allowing instant messagingapplications to track and share identity-based activity of a user withthe user's contacts. Advantageously, the present invention provides anenhanced communication experience between a user and remote contactsthat includes entertainment and online activities.

In one embodiment, a content daemon on a sender peer tracks activecontent of a user and identity-based activity. Active content includesfiles that a user is currently accessing, such as music files the useris currently listening to, movies the user is currently watching, or thelike. Identity-based activity includes broader activities of a specificuser, such as web-based auctions or transactions conducted by a userlogged-in to a chat module, and active content previously viewed by theuser. The chat module shares identity-based activity with a remotelylocated recipient peer through a network by sending informationcollected by the content daemon. The recipient chat module displaysidentity-based activity and/or related information to the contact.

In another embodiment, the content daemon tracks user activity by, e.g.,polling application modules for current active content andidentity-based activity, and storing the information in a list kept by acontent information database. The application module comprises a mediaplayer, a web browser, or other application for activating contentand/or performing user activities. The list includes, for example, thelast five audio files listened to by the user, recent downloads, anonline auction or transaction conducted by the user, etc. In oneembodiment, the list is populated with unique identifiers. For activecontent, an exemplary unique identifier is an ID3 tag for MP3s; and foridentity-based activity, an exemplary unique identifier identifies aspecific user's auction with e.g., a URL or a key. In anotherembodiment, the content daemon detects identity-based activity in anapplication module that is in communication with an activity server. Theactivity server hosts online user activities such as online auctions ortransactions. In response, the content daemon records the uniqueidentifier associated with the identity-based activity.

In yet embodiment, a content enhancement server includes a contentsupplement database to provide supplements to identity-based activityinformation to the recipient peer. Supplemental information can includedescriptive information about the content, meta-data, or additionalinformation, such as name, creator, content descriptions, related filesand so forth (e.g., a CD containing the active media, a graphic file ofthe artist, a preview, or transactional information to obtain a copy).In another embodiment, the content supplement database stores previewsof content for streaming to the recipient peer. The content enhancementserver also includes a content transaction module to enable atransaction based on the shared content information. The contentenhancement server, for example, enables a purchase a copy of a sharedmusic file. In another embodiment, the content transaction module servesas a gateway to third-party databases with available products by usingapplication program interfaces to search the third-party databases andgenerate a list of available products.

Other embodiments include a method of identity-based activity sharing, amethod of streaming content, a method of enabling a transaction relatedto the content, and a method of retrieving supplemental informationabout the content.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram illustrating a system for sharingidentity-based content information according to an embodiment of thepresent invention.

FIG. 2 is a block diagram illustrating a peer according to oneembodiment of the present invention.

FIG. 3 is a block diagram illustrating a chat module according to anembodiment of the present invention.

FIG. 4A is an illustration of a user interface displaying a recipientpeer's chat module with integrated active content information accordingto one embodiment of the present invention.

FIG. 4B is an illustration of a user interface displaying a recipientpeer's chat module with integrated identity-based activity according toone embodiment of the present invention.

FIG. 5 is a block diagram illustrating the content enhancement serveraccording to an embodiment of the present invention.

FIG. 6 is a sequence diagram illustrating a method of sharingidentity-based content information in the system according to anembodiment of the present invention.

FIG. 7 is a sequence diagram illustrating a method of completing atransaction in the content enhancement server concerning contentaccording to an embodiment of the present invention.

FIG. 8 is a sequence diagram illustrating a method of streaming activecontent to the recipient peer according to an embodiment of the presentinvention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

In the following description, for purposes of explanation, numerousspecific details are set forth in order to provide a thoroughunderstanding of the invention. The field of networking is such thatmany different variations of the illustrated and described features ofthe invention are possible. Those skilled in the art will undoubtedlyappreciate that the invention can be practiced without some specificdetails described below, and indeed will see that many other variationsand embodiments of the invention can be practiced while still satisfyingthe teachings of the invention. Further, those of skill in the art ofnetworking appreciate the large variety of different networkingprotocols, topologies, transports, and the like that can be used toestablish networked communications between computers. Accordingly, thepresent invention should not be understood as being limited to thespecific implementations described below.

FIG. 1 is a block diagram illustrating a system for sharingidentity-based content information according to an embodiment of thepresent invention. The system 100 includes a sender peer 110, arecipient peer 120, a content enhancement server 130, and an activityserver 140, each communicatively coupled to a network 145. Those ofskill appreciate that the designation of a peer as sending or receivingis not fixed, and that in practice a peer is sometimes sending data andsometimes receiving data; that is, the designation of a peer as sendingor receiving is merely for purposes of explanation and does not limit apeer to only that function.

As discussed, active content refers to a data file in current use at apeer, such as real-time content. The data file in use may be mediacontent such as an audio or video file being played back in a mediaplayer, text, graphics, or numeric content such as a document,spreadsheet, code file, graphics file, or any other file having datarepresenting content that is capable of perception by a user at thepeer. Active content also refers to related active content informationsuch as meta-data about the data file (e.g., size, title, author,location, date, content list), an auxiliary data file related to thedata file (e.g., unique identifier, associated graphics, text,references to other files), transaction information, a uniqueidentifier, or any other information directly or indirectly related tothe content.

Additionally, identity-based activity refers to broader activitiesspecific to a user, such as web-based auctions or transactions conductedby the user, active content previously viewed by the user, and otherevents related to content accessible by other peers. Although contentmay be active, it need not be executing in real-time or locally (e.g.,current web-based auctions or recent web purchases of a user). Thecontent can be viewed with an application such as a web browser or otherinterface. Identity-based activity also refers to related informationsuch as the duration of an auction, a URL, a unique identifier, a lastupdate time, etc.

The sender peer 110 provides identity-based activity of contacts to auser and sends identity-based activity of the user to a contact's peeron the network 145. In general, a peer is some type of computing device(physical or virtual), such as a computer, a telephone, set top box, anetwork appliance, gaming console, entertainment device, or any devicecapable of connecting to the network 145 and receiving identity-basedactivity. In one embodiment, the sender peer 110 displays a multimediafile and sends related information to the recipient peer 120 fordisplay. In another embodiment, the sender peer 110 sends uniqueidentifiers of online auctions to contacts. Further embodiments of thesender peer 110 and methods operating therein are discussed below.

The recipient peer 120 receives and outputs active content andidentity-based activity of contacts. The recipient peer 120 alsocommunicates with the content enhancement server 130 to retrieveenhancements and enable transactions. The recipient peer 120 can be anyembodiment of the first peer, so output may be displayed in a GUI. Inone embodiment, the sender peer 110 receives and displays a contact'srecent online book purchases. In another embodiment, the sender peer 110displays online sales conducted by contacts, and subsequently receivesupdates from the activity server 140.

In another embodiment, the recipient peer 120 is a thin version of thesender peer 110 in that it has the capability to receive active content,but not necessarily the capability to activate the stream of the activecontent. For example, a telephone having the chat module (e.g., an SMScompatible text messaging module) receives active content information,but may not have the multimedia player needed for local playback.Further embodiments of the recipient peer 120 and methods operatingtherein are discussed below.

The content enhancement server 130 provides supplemental informationabout active content and identity-based content to the recipient peer120, and enables related transactions. The enhanced content server 130is, for example, a server application residing on a network destination.The content enhancement server 130 may be part of a central peer server,or part of an independent third-party server compatible with theprotocol used by peers in the system 100 such as iTunes Music Store.Further embodiments of the content enhancement server 130 and methodsoperating therein are discussed below.

In one example of the system 100, two users, one at the sender peer 110and one at the recipient peer 120 exchange text messages through iChat,while the sender user also listens to MP3s with iTunes. The receiveruser notices identity-based activity concerning recent MP3s played backby the sender user and turns the conversation towards those songs. Thereceiver user consequentially decides to preview the music, initiating astream from the content enhancement server 130 (or the sender peer 110)to the recipient peer 120. Ultimately, the sender user purchases a copyfrom the iTunes Music Store.

The activity server 140 hosts web-based user activities. The activityserver 140 may be a computer running an application such as an HTML orFTP server. The user activity includes web-based services such as onlineauctions, games, entertainment, sales, downloads, transactions, or thelike. Preferably, the activity is publicly available such that anycontact can access and participate in the same or similar activity. Forexample, a user of a recipient peer 120 who wants to order a movierecently downloaded or purchased by a contact is directed to theactivity server 140 to perform the same download or purchase. In anotherexample, a contact is directed to a current advertisement

The network 145 transports data packets containing content informationbetween, e.g., the sender peer 110, the recipient peer 120, and thecontent enhancement server 130. The network 145 may be a data network, atelephone network, or any other type of network capable of transportingdata. The data may be video, audio, information, or otherwise. Thenetwork 145 can be public or private, including both wired and wirelessportions, send data in packets or through circuits, and usecommunications protocols such as IP (Internet Protocol) or ATM(Asynchronous Transfer Mechanism). Combinations of the previous andvariations of network communication are within the scope of the presentinvention since it is transport independent.

Examples of alternative embodiments of the system 100 include, anembodiment having more than two peers, an embodiment having peerswithout the content enhancement server 130, and an embodiment havingpeers communicatively coupled through a first network 145 and one of thepeers communicatively coupled to the content enhancement server 130through a second network 145. In particular, FIG. 1 shows only two peersfor illustration, but in actual practice, there will large number ofpeers.

FIG. 2 is a block diagram illustrating a peer 200 according to oneembodiment of the present invention. The peer 200 includes a chat module210, an application module 220, and a content repository 230. Thehardware portions of a peer (e.g., storage devices, memory,microprocessor, buses, etc.) are not illustrated, and can be of anyconventional or equivalent design.

The chat module 210 sends and receives active content and identity-basedactivity to and from other chat modules. The chat module 210 connects toa centralized messenger service located on the network 145 to set-upand/or conduct communication with other peers. The centralized messengerservice may be Apple Computer Inc.'s iChat™, America Online's AIM™, aninstant messaging module or the like. Peers can communicate with eachother, with their messages passing through the messenger service, ordirectly with each other independently of the centralized messengerserver. The chat module 210 may periodically communicate with thecentralized messenger service to update communication with other peerssuch as setting-up connections with new peers and changing communicationaddresses of existing peers. Although the present embodiment utilizes achat module 210 to share active content and identity-based activityother embodiments may integrate such sharing into different peer-to-peercommunications modules such as an FTP module or other file sharingapplication.

The content daemon tracks 220 active content and user activity bypolling the application module 230. If there is active content ofactivity, the content daemon 220 collects related information, e.g.,meta-data about a file in use or a URL of a user's online posting. Inanother embodiment, the content daemon 220 receives information sentautomatically by the application module 230. In another embodiment, thecontent daemon 220 is configured to exclude certain active content andidentity-based activity, such as confidential information, from sharing.

In one embodiment, the content daemon 220 is integrated into anoperating system running on the peers. The operating system is forexample, Mac OS X by Apple Computer, Inc. of Cupertino, Calif. orWindows XP by Microsoft Corp. of Redmond, Wash. Integration includessoftware code of the operating system itself, a plug-in module thatinteroperates with the operating system, or any other background processthat receives messages from the operating system related to activecontent and identity-based activity. The operating system notifies thecontent daemon module 220 of active application modules 230 and contentand/or activities therein.

The content daemon 220 further comprises a content information database225 that generates and stores information about recently activatedcontent and identity-based activity shared with other peers. The contentinformation database 225 comprises, for example, a table for each userof a peer that contains categories, and lists instances within eachcategory. Content information may be meta-data about the content filesuch as its size, an auxiliary data file related to the data file such aunique identifier, related image file, content title, content source, orany other information directly or indirectly related to the content. Thecontent information database 330 receives queries containing anidentifier such as an MP3 ID tag received from, e.g., the chat module210 or the application module 230. In response, the content informationdatabase 220 makes matching information available to the chat module210, such as the MP3 content title. The information can be displayed atthe sender peer 110, sent to the recipient peer 120 for display, or sentto the content enhancement server 130.

The content information database 225 may also store activity informationsuch as recent or ongoing online transactions. In one example,responsive to the content daemon 220 detecting a book or MP3 purchase,the content information database 225 may update a list of the five mostrecent books on MP3 purchases. In another example, the content daemon220 records a URL containing a user's auction. Additionally, the contentinformation database 225 uses an API for the auction service to obtaininformation such as an item's description or auction expiration time.

The unique identifier comprises an active content fingerprint such as ahash key or wavelet. The hash key can be determined from an algorithmimplementing a mathematical transform on binary data such as SHA-1 orCRC32. The unique identifier may be used by the recipient peer 120 toretrieve locally stored active content information related to the file,or sent to the content enhancement server 130 to retrieve active contentsupplements as described below.

The application module 230 includes active content 235. The applicationmodule 230 may be application software, hardware, or a combination suchas a media player, a web browser, a word processor, or the like. Toactivate the data file, the application module 230 opens at least aportion of the data file and progresses through the data file eithersequentially or otherwise. For example, a media player loads a portionof an audio file into a buffer representing the next ten seconds ofaudio playback. Besides locally executed files, the application module220 serves as a conduit to online activities. For example, a web browserloads a web page containing user activity.

The content repository 240 stores data files that are activated by theapplication module 230. The content repository 240 may be a hard disk,flash memory, random access memory, or any device capable ofnon-volatile or volatile storage of data files. The data files containdata in any useful format, such mpg, .wma, .omg, gif, .mp3, .doc, .txt,.pdf, or any format capable of execution by the application module 230.In one embodiment, the content repository 240 is networked to the senderpeer 110 such as a personal digital assistant with data files connectedto the peer via the Bluetooth wireless communications protocol.

FIG. 3 illustrates a block diagram of the chat module 210 according toan embodiment of the present invention. The chat module 210 comprises acommunications module 310, a server/client module 320, a contentinformation database 330, and a GUI module 340.

The communications module 310 provides a communications pathway for thechat module 210 to transmit messages, and to share active content andidentity-based activity through the network 145. The communicationsmodule 310 logs-in to the centralized chat server and establishespoint-to-point communication with other peers by exchanging networkaddresses such as IP addresses. The communications module 310 mayfurther comprise a network interface, appropriate protocol software, anoperating system or port control, a peer network software, or andapplication software.

The server/client module 320 sends active content and identity-basedactivity for output at the other peers, and receives the same.Additionally, the server/client module 320 streams active content to arecipient peer 120. The server/client module 320 comprises, for example,an FTP server, a desktop sharing server, an audio/video server, or anyother device capable of sending and receiving active content andidentity-based activity through a network.

The GUI module 340 provides a user interface of the chat module 210 andreceives user commands related to displayed information. In therecipient peer 120, the GUI module 340 integrates the information intothe chat module's 210 user interface as discussed below in regards toFIG. 4. The GUI module 340 receives user commands to, for instance,initiate a stream or initiate a transaction. The GUI module 340 mayinclude a graphical engine, an audio/video CODEC, a processor, anoperating system, graphic software, and other graphics enhancingdevices.

FIG. 4A is an illustration of a user interface displaying a recipientpeer's chat module 400 with integrated active content informationaccording to one embodiment of the present invention. One of ordinaryskill of the art will recognize that FIGS. 4A and B are merelyillustrative examples and that there are many variations within thescope of the invention. The chat module display 400 comprises contacts411, 421, 431 which are other peers on the network and, if there is any,each contact's active content information 412, 422. The contacts are alist of peers, which may be personal contacts, co-workers, or any otherpeers on the network 145.

A music icon indicates that the user of Peer 1 is listening to a song,which in this example is “Dorset Perception” by Simon Pasford. Inresponse to selecting the icon, the chat module 210 may initiate anactive content stream, enable a purchase, retrieve content supplements,etc. In one embodiment, response to selecting a hyperlink associatedwith the song title or artist, a list of similar songs, or other songsby the artist is returned.

The representation of Peer 2 does not include information about activecontent at Peer 2. In one embodiment, Peer 2 does not send informationabout active content because, for example, there is no currently activecontent at Peer 2 or because Peer 2 has is not configured to shareactive content with the recipient peer 120. In another embodiment, thechat module 210 does not display received active content informationbecause, for example, the recipient peer 120 is not capable of receivingan active content stream, or not capable of activating streamed content.

The representation of Peer 3 includes an icon indicating that the activecontent 432 at Peer 3 is a movie titled “The Third Man,” and that thismovie is available for purchase. In response to selecting the icon, thechat module 210 enables a transaction.

FIG. 4B is an illustration of a user interface displaying a recipientpeer's chat module 400 with integrated identity-based activity accordingto one embodiment of the present invention. The identity-based activityof this example comprises recently downloaded songs from iTunes. In oneembodiment, activating the song hyperlink initiates a transaction suchas a purchase of the song from iTunes. In another embodiment, activatingthe artist hyperlink returns a list of other MP3s by the artist.

FIG. 5 is a block diagram illustrating the content enhancement server130 according to an embodiment of the present invention. The contentenhancement server 130 includes a content supplement database 520 and acontent transaction module 530.

The content supplement database 520 queries file descriptions to providethe recipient peer 120 with data files related to content. The datafiles may contain information similar to that stored in the contentinformation database 225 and the content repository 240, or more looselyrelated to the shared active content such as data files ofadvertisements. Accordingly, a query for a music artist may return a newbook about the artist or their latest CD. The query may use a uniqueidentifier such as a hash key if available. In one embodiment, thecontent supplement database 520 streams content to the recipient peer120. In another embodiment, the stream is a preview. The contentsupplement database 520 and methods operating therein are described infurther detail below.

The content transaction module 530 facilitates transactions with therecipient peer 120 such as content purchase. The content transactionmodule 530 includes a database of available products. Selected productsare identified by a tag or unique identifier received from the recipientpeer 120. The content transaction module 530 receives an order for theproduct and stores a resulting transaction ticket.

In another embodiment, the content transaction module 530 enablestransactions between the recipient peer 120 and third-party retailers.The content transaction module 530 sends queries to several third-partydatabases according to the third party's application program interface.Based on the results, the content transaction module 530 generates alist of products with hyperlinks to third-party web sites containing theproducts. The content transaction module 530 also stores eachthird-party web site impression and click-through from the hyperlinklist. The content transaction module 530 and methods operating thereinare described in further detail below.

Advantageously, the recipient peer 120 is able to automatically accesssupplemental information about shared active content and is easily ableto obtain a copy of content or a related product.

FIG. 6 is a sequence diagram illustrating a method of sharingidentity-based activity in the system 100 according to an embodiment ofthe present invention. The sending and recipient peers 110, 120independently establish 610, 620 connections to the peer network bypresenting an authorized log-in and password to a log-in server.

Next, the sender and recipient peers 110, 120 establish 615 apeer-to-peer connection to enable direct or indirect communication. Eachpeer sends a list of contacts or other parameter to the log-in serverfor identifying preferred peers. The log-in server returns a list oflogged-in contacts with network addresses for direct communication orother types of identification such as the contact name for indirectcommunication through the log-in server. The log-in server also notifiesother relevant peers that new peers have joined the network 145. Thesender peer 110 sends 625 a list of identity based content informationfrom the content information database 225.

The sender peer 110 sends 625 content information to the recipient peerchat module 210 either directly or indirectly through the log-in server.The recipient peer 120 displays or otherwise output the contentinformation to the contact. Additionally, the recipient peer 120requests 645 supplemental information related to the content from thecontent enhancement server 130. To check the content enhancement server130, the recipient peer 120 sends an identifier such as a tag or titleas described herein.

The content supplement database 510 searches 680 its files using a querybased on the identifier for the content. The query may be filtered byadditional parameters such as only pictures or only advertisements. If aunique identifier of the content is available, such as a hash key, thequery results are more determinative. Otherwise, the content supplementdatabase 510 ranks the query results and sends 655 the supplementalcontent information to the recipient peer 120 for display. In oneembodiment, the content supplement database 510 saves peer-specificqueries to use as parameters in future queries.

In another embodiment, the content supplement database 510 searchesthird party databases by sending a query using the API of the outsidedatabase. Based on matching the queries to database descriptions, thecontent supplement database 510 determines which databases to search.The content supplement database 510 ranks the results and generates alist of hyperlinks corresponding to third party websites containing theresults. The content supplement database 510 may additionally storehyperlink impressions or click-throughs from the list.

The recipient peer 120 displays 670 the active content and/oridentity-based activity in its user interface. In one embodiment, therecipient peer 120 implements local preferences by running a localranking of the received results or by filtering certain results. Therecipient peer 120 user elects to request a stream of the content fromthe sender peer 110 or the content enhancement server 130 as discussedwith respect to FIG. 8. The recipient peer 120 may alternatively requesta transaction from the with the content transaction module 530 asdiscussed with respect to FIG. 7.

The sender peer 110 also sends updates. After the initial identity basedcontent is sent, the sender peer 110 initiates 620 the applicationmodule 230. In one embodiment, the application module 230 and the chatmodule 210 are integrated into a single application, so both modules areinitiated at the same time (e.g., FIG. 4). The sending applicationmodule 230 activates 630 content from the content repository 240 byoutputting a portion of the data file (e.g., playing back part of anaudible e-book). The content daemon 220 detects 640 content viewing onthe application module 230 and updates the content information database225. The sender peer 110 sends 635 updated content information to thepercipient peer 120. In response to the sender peer 110 changing 650content in the application module 230, the sender peer 110 again sends635 content information to the recipient peer 120.

In one embodiment, the content daemon 220 periodically polls theapplication module 230 for content information. In another embodiment,the application module 230 publishes its status to the content daemon220. In yet another embodiment, the content daemon 220 automaticallypolls the activity server 140, which hosts online web sites such aseBay.com or Amazon.com by using an API and/or unique identifier. The websites return a current status of a user's ongoing auction or recent bookpurchases. The API may be proprietary, on open standard, or queries thatappear to the web sites to originate from a user.

FIG. 7 is a sequence diagram illustrating a method of completing atransaction concerning content according to an embodiment of the presentinvention. The content enhancement server 130 queries a database in thecontent transaction module 530 in response to receiving the request forsupplemental content information 645 or otherwise. In the example of apurchase transaction, the database query returns a opportunity topurchase, for example, an MP3 or CD containing a song or a DVDcontaining a movie. The database query also returns related transactionoptions, such as an option to purchase clothing designed by a queriedmusic artist. The content transaction module 530 ranks the query resultsand sends 715 a list of transaction opportunities to the recipient peer120 for display. The results may be displayed as hyperlinks or objectsin a java applet.

The recipient peer 120 requests 725 transaction processing responsive toa user selection 710. In one embodiment, the content transaction module530 requests further information from the recipient peer 120 user, suchas payment and shipping information. Once the transaction terms arecompleted, the content transaction module 530 requests 845 transactionconfirmation to the user. The transaction is completed when therecipient peer 120 returns 855 a transaction confirmation to the contenttransaction module 520.

FIG. 8 is a sequence diagram illustrating a method of streaming contentto the recipient peer 120 according to an embodiment of the presentinvention. The content repository 520 queries 820 stored content inresponse to receiving the request for supplemental information 645 orotherwise. The content repository 520 sends 815 stream options to therecipient peer 815 in any format described herein. The recipient peer120 requests 825 for a stream of content to the content repository 520responsive to a user input 820.

Next, the content repository 520 and recipient peer 120 negotiate 835stream parameters such as stream speed. Essentially, the sender peer'sserver/client module 320 and content repository's server/client module(not pictured) provide a direct communication link by exchanging portnumbers. Additionally, factors may include local preferences, networktraffic load, and bandwidth requirements of the content. The recipientpeer 120 determines which application modules 230 are compatible withthe file type and initiates an application module 230. In oneembodiment, if the file type is compatible with several applicationmodules 230, the recipient peer 120 presents the user with a choice ofapplication modules 220 for activating the file.

The recipient peer 120 activates the content in the application module230. The application module 230 may display or otherwise output theshared active content when a minimum amount of data has been received,buffer a certain amount of data, or wait until the entire file has beentransferred.

In summary, the present invention allows the users of instant messengerto share active content and/or identity-based activity and relatedinformation with other users in the system 100, and to facilitatecommerce. Furthermore, the content enhancement server 130 providespreview content streams, supplemental information, and enablestransactions related to the content.

1. A peer for sharing identity-based activity with a plurality of peers,comprising: a content daemon to detect and store identity-basedactivity; and an instant messaging module, communicatively coupled tothe content daemon, to send an indication of recent identity-basedactivity to at least one of the plurality of peers, the recentidentity-based activity related to a user logged-in to the instantmessaging module.
 2. The peer of claim 1 wherein identity-based activitycomprises content customized by the user that is accessible to theplurality of peers.
 3. The peer of claim 2, wherein the customizedcontent comprises a current online auction posted by the user.
 4. Thepeer of claim 1, wherein identity-based activity comprises instances ofactive content by a user logged-in to the instant messaging module. 5.The peer of claim 4, wherein recently active content comprisesmultimedia files played back in the peer.
 6. The peer of claim 1,further comprises an application module to view identity-based content,and wherein the content daemon detects and stores identity-basedactivity in the application module.
 7. The peer of claim 1, wherein thecontent daemon detects and stores identity-based activity bycommunicating with an activity server that hosts the identity-basedactivity.
 8. The peer of claim 1, wherein the content daemon detects andstores identity-based activity after logging-in the user to the instantmessaging module, and wherein the instant messaging module sends anupdate to the recent identity-based activity.
 9. The peer of claim 1,wherein the indication comprises a unique identifier related to theidentity-based activity.
 10. The peer of claim 1, wherein the contentdaemon is part of an operating system running on the peer.
 11. The peerof claim 1, wherein the instant messaging module further outputs areceived indication of recent identity-based activity of another user.12. The peer of claim 1, further comprising a content transaction moduleto enable a transaction related to the identity-based activity.
 13. Thepeer of claim 1, wherein the peer is communicatively coupled to theplurality of peers through a network.
 14. A method of sharingidentity-based activity with a plurality of peers, comprising: detectingidentity-based activity; storing the identity-based activity; andsending an indication of recent identity-based activity to at least oneof the plurality of peers, the recent identity-based activity related toa user logged-in to an instant messaging module.
 15. The method of claim14, wherein identity-based activity comprises content customized by theuser that is accessible to the plurality of peers.
 16. The method ofclaim 15, wherein the customized content comprises a current onlineauction posted by the user.
 17. The method of claim 14, whereinidentity-based activity comprises instances of active content by a userlogged-in to the instant messaging module.
 18. The method of claim 17,wherein recently active content comprises multimedia files played backin the peer.
 19. The method of claim 14, further comprising: viewingidentity-based content; and detecting and storing identity-basedactivity.
 20. The method of claim 14, further comprises: detecting andstoring identity-based activity independent of viewing identity-basedactivity.
 21. The method of claim 14, wherein the indication comprises aunique identifier related to the identity-based activity.
 22. The methodof claim 14, wherein the detecting comprises detecting identity-basedactivity of an application module in an operating system.
 23. The methodof claim 14, wherein the instant messaging module further outputs areceived indication of recent identity-based activity of another user.24. The method of claim 14, further comprising: enabling a transactionrelated to the identity-based activity.
 25. The method of claim 14,further comprising: communicating with the plurality of peers through anetwork.
 26. A computer program product, comprising: a computer-readablemedium having computer program instructions and data embodied thereonfor sharing identity-based activity with a plurality of peers,comprising: detecting identity-based activity; storing theidentity-based activity; and sending an indication of recentidentity-based activity to at least one of the plurality of peers, therecent identity-based activity related to a user logged-in to an instantmessaging module.
 27. The computer program product of claim 26, whereinidentity-based activity comprises content customized by the user that isaccessible to the plurality of peers.
 28. The computer program productof claim 27, wherein the customized content comprises a current onlineauction posted by the user.
 29. The computer program product of claim26, wherein identity-based activity comprises instances of activecontent by a user logged-in to the instant messaging module.
 30. Thecomputer program product of claim 29, wherein recently active contentcomprises multimedia files played back in the peer.
 31. The computerprogram product of claim 26, further comprising: viewing identity-basedcontent; and detecting and storing identity-based activity.
 32. Thecomputer program product of claim 26, further comprising: detecting andstoring identity-based activity independent of viewing identity-basedactivity.
 33. The computer program product of claim 26, wherein theindication comprises a unique identifier related to the identity-basedactivity.
 34. The computer program product of claim 26, wherein thedetecting comprises detecting identity-based activity of an applicationmodule in an operating system.
 35. The computer program product of claim26, wherein the instant messaging module further outputs a receivedindication of recent identity-based activity of another user.
 36. Thecomputer program product of claim 26, further comprising: enabling atransaction related to the identity-based activity.
 37. The computerprogram product of claim 26, further comprising: communicating with theplurality of peers through a network.